package socket;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author DCSGO
 * @version 1.0
 * 服务端 监听9999端口
 */
public class SocketTCP01Server {
    public static void main(String[] args) throws IOException {
        int port = 9999;
        ServerSocket serverSocket = new ServerSocket(port);
        System.out.println("服务端正在监听 " + port + " 端口...");

        Socket socket = serverSocket.accept();//程序会阻塞 直到有主机访问
        System.out.println("有主机连接到 " + port + " 端口");

        InputStream inputStream = socket.getInputStream();
        System.out.println("获取到 InputStream 正在读取数据...");

        int inputLen = 0;
        byte[] inputs = new byte[1024];
        while ((inputLen = inputStream.read(inputs)) != -1) {//程序会阻塞 直到数据读取完毕
            System.out.println(new String(inputs, 0, inputLen));
        }
        System.out.println("数据读取完毕...");

        //关闭资源
        inputStream.close();
        socket.close();
        serverSocket.close();
        System.out.println("关闭资源完成 已断开连接 程序运行结束...");

        /*
         * 服务端正在监听 9999 端口...
         * 有主机连接到 9999 端口
         * 获取到 InputStream 正在读取数据...
         * Hello,server!
         * 数据读取完毕...
         * 关闭资源完成 已断开连接 程序运行结束...
         *
         * 进程已结束，退出代码为 0
         */
    }
}
